The provision of secure communications links or connections between two parties over an insecure network is an ongoing problem, as a malevolent third party may intercept these communications and may also try to impersonate one of the communicating parties. Typically the communications such as packets are encrypted, and in order to provide strong security this may be achieved using large random keys provided either using a public key cryptography system or a shared secret key system. However encryption requires a lot of processing resources, and in addition may require technical input in order to provide high levels of security. This can be problematic for devices operated by individual consumers who may be using small electronic devices such as mobile phones with limited processing resources, and who are typically not technically proficient. In addition to the problem of providing an encrypted communications channel, there is a need for one or both parties to authenticate the other, or in other words to confirm that the other party is indeed who they say they are; and not a malevolent third party.
With cellular networks, each subscriber is provided with a subscriber identity module (SIM) card or similar removable module comprising shared secret data including a secret key shared with the network provider or operator. The secret key stored on the SIM card can be used to generate session keys which the mobile device can use to encrypt and decrypt communications with the network operator. The mobile phone and network provider can also authenticate each other by sending challenges (e.g. random numbers) which are processed using the shared secret data and compared to determine if the two processed challenges match. The use of SIM cards is therefore a good solution for a centralized network operator with many non-technical subscribers, as the subscriber is merely required to insert the SIM card into their mobile phone.
However this type of solution is not suitable for other types of networks which may have too few (e.g. Wi-Fi base station) subscribers to issue a physical SIM card to each. Small wireless networks such as a wireless local area network (WLAN) typically rely on users entering a secret shared key into each device, which key is then used in a predetermined way to generate session keys for encrypting packets, and to authenticate each device to the other. However this can be technically challenging, time-consuming and inconvenient for users of a WLAN to set-up; particularly those who may purchase a WLAN access point (e.g. WiFi router) off-the-shelf. For example in a typical WiFi WLAN, the user must enter a password into the access point, together with an identifier for any users (e.g. mobile devices such as mobile phones or laptop computers), a channel identifier (BSS), and the type of encryption and authentication to be used. Each mobile device which is to connect to the access point must also be programmed with corresponding parameters, even if the connection is temporary—for example a visiting friend using the WLAN for a short period.